home *** CD-ROM | disk | FTP | other *** search
- ' Setup Script For The Socket Toolkit
-
-
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
-
- ''Dialog ID's
- CONST ASKQUIT = 200
- CONST DESTPATH = 300
- CONST EXITFAILURE = 400
- CONST EXITQUIT = 600
- CONST EXITSUCCESS = 700
- CONST OPTIONS = 800
- CONST APPHELP = 900
- CONST CUSTINST = 6200
- CONST TOOBIG = 6300
- CONST BADPATH = 6400
- CONST VBPATHDLG = 7900
-
- ''Bitmap ID
- CONST LOGO = 1
-
- ''File Types
- CONST APPFILES = 1
- CONST OPTFILES1 = 2
- CONST OPTFILES2 = 3
-
-
- GLOBAL DEST$ ''Default destination directory.
- GLOBAL WINDRIVE$ ''Windows drive letter.
- GLOBAL WINPATH$ ''Windows drive letter.
- GLOBAL SOURCE$
- GLOBAL VBPATH$
-
- GLOBAL Cost&
- GLOBAL Free&
-
- ''CustInst list symbol names
- GLOBAL APPNEEDS$ ''Option list costs per drive
- GLOBAL EXTRACOSTS$ ''List of extra costs to add per drive
-
- ''Dialog list symbol names
- GLOBAL STATUSTEXT$
- GLOBAL DRIVETEXT$
-
- DECLARE FUNCTION LoadLibrary LIB "KERNEL" (F$) AS INTEGER
- DECLARE FUNCTION SetErrorMode LIB "KERNEL" ( EMode% ) AS INTEGER
- DECLARE FUNCTION WinHelp LIB "USER" ( win% , filen$ , cmd% , ldata$ ) AS INTEGER
- DECLARE SUB FreeLibrary LIB "KERNEL" (H%)
- DECLARE FUNCTION GetModuleFileName LIB "KERNEL"( H%, F$ , L% ) as INTEGER
-
- DECLARE SUB RecalcOptFiles (ftype%)
- DECLARE SUB RecalcPath
- DECLARE SUB SetDriveStatus
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
-
-
-
- INIT:
- CUIDLL$ = "mscuistf.dll" ''custom user interface dll
- HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
-
- a%=Ctl3dRegister( HInstFrame() )
- a%=Ctl3dAutoSubclass( HInstFrame() )
- SetBitmap CUIDLL$, LOGO
- SetTitle "Network Sockets Toolkit Setup"
-
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "SKT.INF"
- END IF
- ReadInfFile szInf$
-
- WINPATH$ = GetWindowsDir
- WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
- DEST$ = WINDRIVE$ + ":\SKT"
-
- ''CustInst list symbols
- DRIVETEXT$ = "DriveStatusText"
- FOR i% = 1 TO 3 STEP 1
- AddListItem DRIVETEXT$, ""
- NEXT i%
- AddListItem DRIVETEXT$, DEST$
-
- OldMode% = SetErrorMode( &h8000 )
- FileN$ = "NWCALLS.DLL"
- FileNC$ = String$( 256, " " )
- HLib% = LoadLibrary( FileN$ )
- if HLib% > 32 then
- a% = GetModuleFileName( HLib% , FileNC$ , 256 )
- Ver$ = GetVersionOfFile( FileNC$ )
- FreeLibrary( HLib% )
- if Val( Ver$ ) < 4 then
- if Ver$ = "" then
- Ver$ = "UNKNOWN"
- end if
- Msg$ = "This software requires the Netware Client Version 4.x or greater. "
- Msg$ = msg$ + "Setup found version " + Ver$ + ". You must upgrade for this "
- Msg$ = msg$ + "software to operate."
- a% = DoMsgBox( Msg$ , "Network Sockets Toolkit" , MB_ICONHAND Or MB_OK )
- end if
- endif
- OldMode% = SetErrorMode( OldMode% )
-
- FileN$ = "VB.EXE"
- VBPATH$ = FindTargetOnEnvVar( FileN$ ,"PATH")
- if VBPATH$<>"" then
- VBPATH$=MiD$(VbPATh$,1,Len(VbPath$)-6)
- endif
-
- ''Disk cost list symbols
- APPNEEDS$ = "AppNeeds"
- EXTRACOSTS$ = "ExtraCosts"
-
- FOR i% = 1 TO 26 STEP 1
- AddListItem APPNEEDS$, "0"
- NEXT i%
- FOR i% = 1 TO 26 STEP 1
- AddListItem EXTRACOSTS$, "0"
- NEXT i%
-
- RecalcPath
- SetDriveStatus
-
- '$IFDEF DEBUG
- i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
- '$ENDIF ''DEBUG
-
-
-
- CUSTINST:
- sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", 0, "")
- UIPop 1
- IF sz$ = "CONTINUE" THEN
- if Cost& > Free& then
- GOSUB TOOBIG
- GOTO CUSTINST
- endif
- GOTO B
- ELSEIF sz$ = "PATH" THEN
- GOTO GETPATH
- ELSE
- GOSUB ASKQUIT
- GOTO CUSTINST
- END IF
- B:
- if VbPath$="" then
- GOTO GETVBPATH
- end if
- INSTALL:
- SOURCE$ = GetSymbolValue("STF_SRCDIR")
- ClearCopyList
- if mid$( Dest$ , len(Dest$) , 1 ) = "\" then
- Dest$ = mid$( Dest$ , 1 , Len( Dest$ ) - 1 )
- end if
- AddSectionFilesToCopyList "BIN", SOURCE$, WINPATH$
- AddSectionFilesToCopyList "HELP", SOURCE$, WINPATH$
- AddSectionFilesToCopyList "INCLUDE", SOURCE$, DEST$+"\INCLUDE"
- AddSectionFilesToCopyList "LIB", SOURCE$, DEST$+"\LIB"
- AddSectionFilesToCopyList "UNITS", SOURCE$, DEST$+"\UNITS"
- AddSectionFilesToCopyList "SAMPLES_C", SOURCE$, DEST$+"\SAMPLES\C"
- AddSectionFilesToCopyList "SAMPLES_VB", SOURCE$, DEST$+"\SAMPLES\VB"
- AddSectionFilesToCopyList "SAMPLES_PASCAL", SOURCE$, DEST$+"\SAMPLES\PASCAL"
- CreateDir DEST$+"\INCLUDE", cmoVital
- CreateDir DEST$+"\LIB", cmoVital
- CreateDir DEST$+"\UNITS", cmoVital
- CreateDir DEST$+"\SAMPLES\C", cmoVital
- CreateDir DEST$+"\SAMPLES\PASCAL", cmoVital
- CreateDir DEST$+"\SAMPLES\VB", cmoVital
- SetCopyGaugePosition -1 , 115
- CopyFilesInCopyList
-
- CreateProgmanGroup "Network Sockets Toolkit", "", cmoNone
- ShowProgmanGroup "Network Sockets Toolkit", 1, cmoNone
- CreateProgmanItem "Network Sockets Toolkit", "Network Sockets 2.0 Help", "winhelp.exe "+"SKT.HLP", "", cmoOverwrite
- CreateProgmanItem "Network Sockets Toolkit", "C Example Exe", DEST$+"\SAMPLES\C\SIMPSKTC.EXE DEMO1 DEMO1", "", cmoOverwrite
- CreateProgmanItem "Network Sockets Toolkit", "C Example Source", "NOTEPAD.EXE "+DEST$+"\SAMPLES\C\SIMPSKTC.C", "", cmoOverwrite
- CreateProgmanItem "Network Sockets Toolkit", "Pascal Example Exe", DEST$+"\SAMPLES\PASCAL\SIMPSKTP.EXE DEMO2 DEMO2", "", cmoOverwrite
- CreateProgmanItem "Network Sockets Toolkit", "Pascal Example Source", "notepad.exe "+DEST$+"\SAMPLES\PASCAL\SIMPSKTP.PAS", "", cmoOverwrite
- CreateProgmanItem "Network Sockets Toolkit", "VB Example Exe", DEST$+"\SAMPLES\VB\SOCKDEMO.EXE", "", cmoOverwrite
- CreateProgmanItem "Network Sockets Toolkit", "VB Chat Example Exe", DEST$+"\SAMPLES\VB\SOCKCHAT.EXE", "", cmoOverwrite
- if VBPath$ <> "" then
- CreateProgmanItem "Network Sockets Toolkit", "VB Example Source", VBPATH$+"VB.EXE "+DEST$+"\SAMPLES\VB\SOCKDEMO.MAK", "", cmoOverwrite
- CreateProgmanItem "Network Sockets Toolkit", "VB Chat Example Source", VBPATH$+"VB.EXE " +DEST$+"\SAMPLES\VB\SOCKCHAT.MAK", "", cmoOverwrite
- endif
- Installed% = 1
-
-
- QUIT:
- ON ERROR GOTO ERRQUIT
-
- IF ERR = 0 THEN
- dlg% = EXITSUCCESS
- ELSEIF ERR = STFQUIT THEN
- dlg% = EXITQUIT
- ELSE
- dlg% = EXITFAILURE
- END IF
- QUITL1:
- sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO QUITL1
- ENDIF
- UIPop 1
- a%=Ctl3dUnRegister( HInstFrame() )
-
- if Installed = 1 then
- a%=WinHelp( 0 , "SKT.HLP" , 257 , "License Agreement" )
- end if
-
- END
-
- ERRQUIT:
- a%=Ctl3dUnRegister( HInstFrame() )
- i% = DoMsgBox("Setup sources were corrupted. Contact Apiary technical support.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
- END
-
-
-
- GETPATH:
- SetSymbolValue "EditTextIn", DEST$
- SetSymbolValue "EditFocus", "END"
- GETPATHL1:
- sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
-
- IF sz$ = "CONTINUE" THEN
- olddest$ = DEST$
- DEST$ = GetSymbolValue("EditTextOut")
- IF IsDirWritable(DEST$) = 0 THEN
- GOSUB BADPATH
- GOTO GETPATHL1
- END IF
- UIPop 1
- IF LEN(DEST$) > 23 THEN
- ReplaceListItem DRIVETEXT$, 4, MID$(DEST$, 1, 23)+"..."
- ELSE
- ReplaceListItem DRIVETEXT$, 4, DEST$
- END IF
- IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
- RecalcPath
- SetDriveStatus
- END IF
- olddest$ = ""
- GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcPath
- SetDriveStatus
- GOTO GETPATHL1
- ELSEIF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO GETPATHL1
- ELSE
- UIPop 1
- GOTO CUSTINST
- END IF
-
- TOOBIG:
- sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- RecalcPath
- SetDriveStatus
- GOTO TOOBIG
- END IF
- UIPop 1
- RETURN
-
- BADPATH:
- sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- RecalcPath
- SetDriveStatus
- GOTO BADPATH
- END IF
- UIPop 1
- RETURN
-
-
-
- ASKQUIT:
- sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
-
- IF sz$ = "EXIT" THEN
- UIPopAll
- ERROR STFQUIT
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO ASKQUIT
- ELSE
- UIPop 1
- ENDIF
- RETURN
-
- GETVBPATH:
- SetSymbolValue "EditTextIn", ""
- SetSymbolValue "EditFocus", "END"
- GETVBPATHL1:
- sz$ = UIStartDlg(CUIDLL$, VBPATHDLG, "FEditDlgProc", 0, "")
-
- IF sz$ = "CONTINUE" THEN
- VBPATH$ = GetSymbolValue("EditTextOut")
- if VBPATH$="" then
- gosub BadPath2
- goto getvbpath
- end if
- IF MID$( VBPATH$ , LEN(VBPATH$) , 1 ) <> "\" then
- VBPATH$ = VBPATH$ + "\"
- endif
- If DoesFileExist( VBPATH$+"VB.EXE" , femExists ) = 0 then
- Gosub BadPath2
- goto GETVBPATH
- end if
- UIPop 1
- GOTO INSTALL
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETVBPATHL1
- ELSEIF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO GETVBPATHL1
- ELSE
- VBPATH$ = ""
- UIPop 1
- GOTO INSTALL
- END IF
- BADPATH2:
- sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO BADPATH2
- END IF
- UIPop 1
- RETURN
-
-
-
- SUB RecalcOptFiles (ftype%) STATIC
- ClearCopyList
- SOURCE$ = GetSymbolValue("STF_SRCDIR")
- if mid$( Dest$ , len(Dest$) , 1 ) = "\" then
- Dest$ = mid$( Dest$ , 1 , Len( Dest$ ) - 1 )
- end if
- AddSectionFilesToCopyList "BIN", SOURCE$, WINPATH$
- AddSectionFilesToCopyList "HELP", SOURCE$, WINPATH$
- AddSectionFilesToCopyList "INCLUDE", SOURCE$, DEST$+"\INCLUDE"
- AddSectionFilesToCopyList "LIB", SOURCE$, DEST$+"\LIB"
- AddSectionFilesToCopyList "UNITS", SOURCE$, DEST$+"\UNITS"
- AddSectionFilesToCopyList "SAMPLES_C", SOURCE$, DEST$+"\SAMPLES\C"
- AddSectionFilesToCopyList "SAMPLES_VB", SOURCE$, DEST$+"\SAMPLES\VB"
- AddSectionFilesToCopyList "SAMPLES_PASCAL", SOURCE$, DEST$+"\SAMPLES\PASCAL"
- StillNeed& = GetCopyListCost(EXTRACOSTS$, APPNEEDS$, "")
- END SUB
-
- SUB RecalcPath STATIC
- CursorSave% = ShowWaitCursor()
- RecalcOptFiles 0
- RestoreCursor CursorSave%
- END SUB
-
- SUB SetDriveStatus STATIC
-
- drive$ = MID$(DEST$, 1, 1)
- ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
- cost& = VAL(GetListItem(APPNEEDS$, ndrive%))
- free& = GetFreeSpaceForDrive(drive$)
- ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
- ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
- ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
-
- END SUB
-
-
- FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
- IF szDir$ = "" THEN
- MakePath = szFile$
- ELSEIF szFile$ = "" THEN
- MakePath = szDir$
- ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakePath = szDir$ + szFile$
- ELSE
- MakePath = szDir$ + "\" + szFile$
- END IF
- END FUNCTION
-
-